package cn.ilovese.collect.service.task;

import cn.ilovese.collect.po.user.User;
import cn.ilovese.collect.vo.ResultVO;
import cn.ilovese.collect.vo.task.TaskFormVO;
import cn.ilovese.collect.vo.task.TaskVO;
import cn.ilovese.collect.vo.task.TaskWithUsernameVO;
import cn.ilovese.collect.vo.user.UserVO;
import org.springframework.web.bind.annotation.RequestBody;

import javax.xml.transform.Result;
import java.util.List;

public interface TaskService {
    public ResultVO<List<TaskWithUsernameVO>> getAllTasks();

    public ResultVO<List<TaskWithUsernameVO>> getAllValidTasks();

    public List<TaskVO> getTasksNeedWorker();

    public ResultVO<List<TaskWithUsernameVO>> getProducedTasks(Integer uid);

    public ResultVO<List<TaskWithUsernameVO>> getCompletedTasks(Integer uid);

    public ResultVO<List<TaskWithUsernameVO>> getWorkingTasks(Integer uid);

    public ResultVO<List<TaskWithUsernameVO>> getFinishedTasks(Integer uid);

    public ResultVO<TaskWithUsernameVO> getTaskById(Integer taskid);

    public ResultVO<TaskVO> createTask(TaskFormVO task);

    public ResultVO<TaskVO> updateTask(TaskVO task);

    public ResultVO<TaskVO> deleteTask(Integer taskid);


}
